#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ofstream readme("README.md");
    
    if (!readme.is_open()) {
        std::cerr << "无法创建 README.md 文件" << std::endl;
        return 1;
    }
    
    readme << "# Tree 目录树生成工具\n\n";
    readme << "一个用 C++ 编写的目录树生成工具，可以生成终端显示、HTML 和 TXT 格式的目录结构图。\n\n";
    
    readme << "## 功能特点\n\n";
    readme << "- 多格式输出：支持终端显示、HTML 和 TXT 格式\n";
    readme << "- 详细信息：显示文件权限、大小、修改时间和创建时间\n";
    readme << "- 美观界面：HTML 输出支持折叠/展开，样式美观\n";
    readme << "- 高性能：使用 C++17 编写，运行速度快\n";
    readme << "- 易于使用：简单的命令行界面\n\n";
    
    readme << "## 系统要求\n\n";
    readme << "- Linux 系统\n";
    readme << "- g++ 编译器 (支持 C++17)\n";
    readme << "- 标准 C++ 库\n\n";
    
    readme << "## 安装方法\n\n";
    readme << "### 自动安装\n";
    readme << "下载 tree.cpp 和 install.sh 到同一目录，运行安装脚本：\n";
    readme << "```bash\n";
    readme << "chmod +x install.sh\n";
    readme << "./install.sh\n";
    readme << "```\n\n";
    readme << "### 手动安装\n";
    readme << "```bash\n";
    readme << "g++ -std=c++17 -O2 -o tree tree.cpp\n";
    readme << "sudo cp tree /usr/local/bin/\n";
    readme << "```\n\n";
    
    readme << "## 使用教程\n\n";
    readme << "| 功能 | 命令格式 | 示例 | 输出格式 | 说明 |\n";
    readme << "|------|----------|------|----------|------|\n";
    readme << "| 终端显示 | `tree [目录]` | `tree`<br>`tree /home/user` | 终端文本 | 在终端显示目录树状结构，使用 Unicode 字符显示层次关系 |\n";
    readme << "| HTML 输出 | `tree [目录] -o 文件名.html` | `tree . -o tree.html`<br>`tree /project -o docs/structure.html` | HTML 文件 | 生成可交互的 HTML 页面，支持折叠/展开，显示完整文件属性 |\n";
    readme << "| TXT 输出 | `tree [目录] -o 文件名.txt` | `tree . -o tree.txt`<br>`tree /src -o documentation.txt` | 文本文件 | 生成纯文本格式的目录树，包含文件属性信息，适合文档记录 |\n\n";
    
    readme << "### 输出特性对比\n\n";
    readme << "| 特性 | 终端输出 | HTML 输出 | TXT 输出 |\n";
    readme << "|------|----------|-----------|----------|\n";
    readme << "| 文件权限 | 不显示 | 显示完整权限 | 显示完整权限 |\n";
    readme << "| 文件大小 | 不显示 | 自动转换单位 | 自动转换单位 |\n";
    readme << "| 时间信息 | 不显示 | 修改/创建时间 | 修改/创建时间 |\n";
    readme << "| 交互功能 | 不支持 | 折叠/展开 | 不支持 |\n";
    readme << "| 可视化 | 基础树状 | 彩色可交互 | 结构清晰 |\n";
    readme << "| 适用场景 | 快速查看 | 文档/演示 | 版本控制/记录 |\n\n";
    
    readme << "### 文件属性说明\n\n";
    readme << "| 属性 | 格式 | 示例 | 说明 |\n";
    readme << "|------|------|------|------|\n";
    readme << "| 权限 | `drwxr-xr-x` | `-rw-r--r--` | 第1位: d=目录, -=文件; 2-10位: 所有者/组/其他用户的读写执行权限 |\n";
    readme << "| 文件大小 | 自动转换 | `4.2 KB` | B, KB, MB, GB, TB 自动转换，保留1位小数 |\n";
    readme << "| 修改时间 | YYYY-MM-DD HH:MM:SS | `2024-01-15 10:30:00` | 文件最后修改时间 |\n";
    readme << "| 创建时间 | YYYY-MM-DD HH:MM:SS | `2024-01-15 09:00:00` | 文件创建时间（如果系统支持） |\n\n";
    
    readme << "### 使用示例\n\n";
    readme << "**终端显示效果：**\n";
    readme << "```\n";
    readme << ".\n";
    readme << "├── src\n";
    readme << "│   ├── main.cpp\n";
    readme << "│   └── utils.cpp\n";
    readme << "├── include\n";
    readme << "│   └── headers.h\n";
    readme << "└── README.md\n";
    readme << "```\n\n";
    
    readme << "**HTML 输出特性：**\n";
    readme << "- 文件夹：蓝色显示，可点击展开/折叠\n";
    readme << "- 文件：黑色显示，右侧显示文件大小\n";
    readme << "- 属性面板：每个项目下方显示权限、时间等详细信息\n";
    readme << "- 控制按钮：提供\"展开所有\"和\"折叠所有\"功能\n\n";
    
    readme << "**TXT 输出片段：**\n";
    readme << "```\n";
    readme << "Directory Tree: /home/user/project\n";
    readme << "Generated on: 2024-01-15 10:30:00\n";
    readme << "==========================================\n";
    readme << ".\n";
    readme << "权限: drwxr-xr-x\n";
    readme << "修改时间: 2024-01-15 10:25:00\n";
    readme << "创建时间: 2024-01-15 09:00:00\n";
    readme << "├── src\n";
    readme << "│   权限: drwxr-xr-x\n";
    readme << "│   修改时间: 2024-01-15 10:20:00\n";
    readme << "│   创建时间: 2024-01-15 09:05:00\n";
    readme << "├── main.cpp (4.2 KB)\n";
    readme << "│   权限: -rw-r--r--\n";
    readme << "│   修改时间: 2024-01-15 10:15:00\n";
    readme << "│   创建时间: 2024-01-15 09:10:00\n";
    readme << "```\n\n";
    
    readme << "## 故障排除\n\n";
    readme << "### 编译问题\n";
    readme << "- **错误: 'filesystem' 未找到**：确保使用 g++ 7.0 或更高版本，编译时添加 `-std=c++17` 标志\n";
    readme << "- **错误: 权限被拒绝**：安装到系统路径时需要 root 权限，使用 `sudo` 或选择用户安装方式\n\n";
    
    readme << "### 运行问题\n";
    readme << "- **命令未找到**：如果选择用户安装，确保 `~/bin` 在 PATH 环境变量中，运行 `source ~/.bashrc` 或重新登录\n";
    readme << "- **HTML 显示异常**：确保使用现代浏览器查看生成的 HTML 文件\n\n";
    
    readme << "## 许可证\n\n";
    readme << "本项目使用 MIT 许可证。\n\n";
    
    readme << "## 更新日志\n\n";
    readme << "### v1.0.0\n";
    readme << "- 初始版本发布\n";
    readme << "- 支持终端、HTML、TXT 输出格式\n";
    readme << "- 显示完整的文件属性信息\n";
    
    readme.close();
    
    std::cout << "README.md 文件已生成" << std::endl;
    return 0;
}
